Personal prescription dispenser

ABSTRACT

Disclosed is a method and apparatus for transporting and dispensing medications for a patient according to a medication schedule for the patient. A smart container from a pharmacy is received at the patient&#39;s site and the container is checked to make sure that the container was delivered to the correct patient site. The smart container contains a memory device that contains identification information of the patient, dosage and treatment instructions for the patient. This information and the medication were checked for compatibility before the smart container was delivered. The identity of the patient at the patient&#39;s site is then checked and the patient performs on or more biometric tests before the medication is dispensed by the smart container. Upon taking the medication and providing video proof thereof, the smart container is returned to the pharmacy.

BACKGROUND

The present invention relates to dispensing medication at a patient's site, and more specifically, to use of secure systems and method to securely receive prescriptions from a medical provider, accurately fill the medications at a pharmacy and securely deliver the medications to the patient's site.

Patients at a residential site are often prescribed multiple medications to be taken under various different conditions and at different times. This process is beset with possible errors. For example, medication prescribed for a particular patient might be delivered to a different patient or might not be delivered at all; the medication might be tampered with prior to delivery to the patient; conditions for taking the medication properly might not be satisfied; possibly harmful interactions with other medications might escape attention; the patient might not actually take the medication; and the patient might take the medication at the proper times.

Thus, there is a need for an improved process for delivering and monitoring medications of a patient.

SUMMARY

According to one embodiment of the present invention, a method includes receiving, from a medical provider, a prescription associated with an identifier of a patient, in response to receiving the prescription, requesting and obtaining from the medical provider patient data including medical history of the patient, determining that the prescription is compatible with the patient data, adding medication according to the prescription to a secure container, and programming the secure container with the patient identifier and dosage information, including a dosage schedule according to the received prescription.

Further embodiments include a system configured to carry out one or more aspects of the above method and a computer readable medium containing instructions for carrying out one or more aspects of the above method.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 depicts a system for providing medication to a patient, according to one embodiment described herein.

FIG. 2A depicts an IOT device at a pharmacy, according to one embodiment described herein.

FIG. 2B depicts an IOT device at a patient location, according to one embodiment described herein.

FIG. 2C depicts a computer system used in the IOT devices, according to one embodiment described herein.

FIG. 2D depicts medication bins and disposal bins in a smart container, according to one embodiment described herein.

FIG. 2E depicts a portion of the smart container in more detail, according to one embodiment described herein.

FIG. 2F depicts a portion of the smart container in more detail, according to one embodiment described herein.

FIG. 3 depicts a flow chart of operations performed by a provider, according to one embodiment described herein.

FIG. 4 depicts a flow chart of operations performed by a pharmacy IOT device, according to one embodiment described herein.

FIG. 5 depicts a flow chart of operations performed the Script function, according to one embodiment described herein.

FIG. 6 depicts a flow chart of operations performed by the Interaction function, according to one embodiment described herein.

FIG. 7 depicts a flow chart of operations performed by the Fill function, according to one embodiment described herein.

FIG. 8 depicts a flow chart of operations performed by the Transit function, according to one embodiment described herein.

FIG. 9 depicts a flow chart of operations performed by the patient IOT device, according to one embodiment described herein.

FIG. 10 depicts a flow chart of operations performed by the Replenishment function, according to one embodiment described herein.

FIG. 11 depicts a flow chart of operations performed by the Dispense function, according to one embodiment described herein.

FIG. 12 depicts a flow chart of operations performed by the Dosage function, according to one embodiment described herein.

FIG. 13 depicts a flow chart of operations performed by the BioTask function, according to one embodiment described herein.

FIG. 14 depicts a flow chart of operations performed by the CompletionA function, according to one embodiment described herein.

FIG. 15 depicts a flow chart of operations performed by the CompletionB function, according to one embodiment described herein.

FIG. 16 depicts a time line of various operations, according to one embodiment described herein.

DETAILED DESCRIPTION

FIG. 1 depicts a system for providing medication to a patient. The system 100 includes a provider's office 102 with a database 108 for storing patient prescriptions, a pharmacy 104 with an IOT device 114, a number of smart and secure containers 112 for holding and transporting patient medication, an IOT (Internet of Things) device 114, a number of return bins 110 used for returning medication to the pharmacy 104, and a patient's site 106 with an IOT device 122, a number of return bins 116, smart and secure containers 118, and a number of patient biometric devices 122. The provider's office 102 communicates with the pharmacy 104 over link A 124. The pharmacy 104 communicates with the patient's site 106 over link B 126 and the patient's site 106 communicates with the provider's office 102 over link C 128. In some embodiments, communication links A 124, B 126 and C 128 are links through the Internet and messages sent and received over the Internet links are encrypted with public or private keys.

Messages sent and received over the various links, A 124, B 126 and C 128 occur without the sender or recipient being involved with the underlying communications media or its protocols. The messages can include any kind of data, programs, and/or objects. In particular, a step ‘Send(msg to dest)’ performed by a sender is an asynchronous non-blocking transmission of a message, msg, to a destination, dest, and a step, ‘Received(msg)’, is a predicate, which if true, is interpreted as signaling that the message, msg, has been received and is available to the recipient. If the predicate is false, no message has been received, and the recipient may be blocked waiting for a message to arrive. However, a recipient can configure the predicate so that by testing the predicate, the recipient can avoid being blocked.

FIG. 2A depicts an IOT device at a pharmacy, in an embodiment. The IOT device 114 includes a computer system 202, a number of medication bins 204, a pill counting and sorting mechanism 206, a pill hopper 208 and an authentication device 224, such as a fingerprint reader, video camera 230 or microphone 270. The pill counting and sorting mechanism 206 is connected to the bins via a USB port 216. One or more detachable smart and secure containers 112 are connected to the computer system 202 via a USB port 218. A monitor and keyboard 228 are attached to the computer system 202 via a USB port 220 and the video camera 230 is attached to the computer system 202 via a Bluetooth link 226 to the computer system 202.

FIG. 2B depicts an IOT device at a patient location, in an embodiment. The IOT device 122 includes a computer system 232 and an authentication device 234, such as a fingerprint reader. A detachable and tamper-proof (i.e., secure) smart container 118 and a display/touchpad device are respectively connected to the computer system 232 via USB ports 252 and 242. An Internet router 250, biometric devices 254 and a video camera 256 are connected to the computer system via Bluetooth link 246. The computer system includes a microphone 240 and speaker 248 for communicating with the patient.

FIG. 2C depicts a representative computer system used in the IOT devices, in an embodiment. The computer system 202, 232 includes computer hardware 262, an operating system 282 and one or more application programs 284 _(1-N). The computer hardware includes one or more CPUs 265, RAM 266, NIC (Network interface component) 268, microphone and speaker interface 270, a WiFi port 272, Ethernet ports 274, USB ports 276, a Bluetooth link 280, persistent storage 278, and one or more power supplies 279 to power the computer hardware 262. In one embodiment, persistent storage 278 can be a form of RAID storage, such as RAID1. In one embodiment, the power supplies 279 can be redundant power supplies. The operating system 282 may a common commercial operating system such as the Windows® operating system or the Linux® operating system. The one or more application programs 284 _(1-N) include programs and tasks for running the IOT devices 114, 122.

FIG. 2D depicts medication bins and disposal bins in a smart container, in an embodiment. The medication bins 290 include a plurality of tamper-proof (i.e., secure) storage bins 292 a-k for medication along with a Flash RAM 292 r that contains a public key/private key combination for authorization of the smart and secure container 112, 118 a patient token for a block chain record and treatment instructions for the medications contained in the storage bins 290. Each bin 292 a-k is designed to be separately disengaged from the plurality of bins at the pharmacy 104 for re-use. A number of neutralization disposal bins 296 a-j contain a neutralization agent for rendering medication inert. In one embodiment, the medication is rendered inert by an epoxy resin combination that is mixed with discarded medication.

FIG. 2E depicts a portion of the smart container in more detail, in an embodiment. Each one of the smart and secure containers 112, 118 includes a plurality of tamper-proof (i.e., secure) medication bins 294, a medication delivery bin 298, docking holes 308 a, 308 b for connecting to an IOT device, and computing hardware 301 and software. The computing hardware includes a CPU 304, RAM 306, which stores the software for execution by the CPU 304, the Flash RAM 292 r, and one or more USB ports 302. The computing hardware 310 and software performs such tasks as authorization, block chain token updates, validation and processing treatment instructions, as described with respect to FIGS. 3 through 15.

FIG. 2F depicts a portion of the smart container in more detail, in an embodiment. FIG. 2F depicts the neutralization container 310 portion of the smart and secure container 112, 118. This portion of the smart and secure container 112, 118 includes a neutralization agent 312, a magnetic door 314, 316 for releasing the neutralization agent 312, a disposal bin 324 for holding the inert, discarded medication, a USB port 318 and docking holes 320, 322 for connecting to an IOT device.

FIG. 3 depicts a flow chart of operations performed by a medical provider, such as a doctor's office, in an embodiment. In step 352, the provider's office 102 creates a prescription for a patient. In step 354, the provider's office 102 encrypts the medication and dosages and in step 356, adds the encrypted items to the provider database 108. In step 358, the provider's office 102 sends the prescription along with instructions to the pharmacy 104. In one embodiment, transmission of the prescription is encrypted with a public key of the recipient and decrypted by the recipient using the recipient's corresponding private key.

In one embodiment, the prescription includes a superscription, an inscription, a subscription, a signature, refill information and a physician signature. The superscription includes the date, patient name, patient address. The inscription includes the name of the prescribed drug, the dosage form and strength of the drug. The subscription includes directions for the pharmacist, the size of each dose amount to be dispensed and the form of the drug (color, size, shape).

Continuing with FIG. 3, in step 360 the provider receives a ‘request for patient data’ message and in step 362 provides the patient data to the requestor. In one embodiment, the patient data includes the name of the patient, the medical history of the patient, the prescription history of the patient, notes and instructions. In step 364, the provider's office 102 determines whether notice of an error is received and if so, in step 366 takes appropriate actions depending on the type of error.

FIG. 4 depicts a pharmacy program running on a pharmacy IOT device, in an embodiment. In the embodiment depicted, the program 402 has four states S 404, I 406, F 408, and T 410. In state S 404, the Script function runs; in state I 406, the Interaction function; in state F 408, the Fill function; and in state T 410, the Transit function. Each of these functions is described in more detail below. In state S 404, the Script function waits for a new script and if the Script function runs without error, then the program 402 runs the Interaction function next. If the Interaction function runs without error, then the program 402 runs the Fill function next. If Interaction function encounters a condition check error, then a ‘notice’ message is sent to the last person involved in the process, which in this case is the provider's office 102, and the program 402 then runs the Script function. If the Fill function runs without error, then the program 402 runs the Transit function next. If the Fill function encounters a count error or confirmation error, then a ‘notice’ message is sent to the last person involved in the process, which is the pharmacy technician, and the program 402 runs the Script function. Thus, if no errors are encountered, the program 402 runs the Script, Interaction, Fill and Transit functions sequentially. Besides the error conditions mentioned above, other error conditions can be accommodated by the existing functions or added functions.

FIG. 5 depicts a flow chart of operations performed the Script function, in an embodiment. In step 502, the Script function has received a ‘Script(s), patientToken’ message from the provider's office 102. The message contains one or more encrypted prescriptions for a patient identified by the patient token. In step 504, the Script function decrypts the data to create the plain text prescription and creates a block chain (BC) record. The block chain is used to track in a distributed ledger the transactions that occur throughout the system 100. In step 506, the Script function updates the newly created block chain record with the master block chain ID for the pharmacy and information such as the dosage details and a manufacturer of origin for each medication in the prescription. In step 508, the Script function updates the block chain record with the received token for the patient. In step 510, the Script function sends a ‘request for patient data’ message to the provider over link A 124 and in step 512, has received over link A 124 a message ‘patient data’, which contains the requested patient data from the provider's office 102. In an embodiment, the patient data is encrypted using a private key of the provider's office and is decrypted using the public key of the provider's office upon receipt at the pharmacy. In an embodiment, the patient data is sent by the provider to the pharmacy as part of the block chain record. In step 514, the Script function validates the prescription against the patient data. This guards against prescriptions that, based on the patient data, the patient may not be able to tolerate. In step 516, the Script function prepares a pharmacy report based on the results of step 514. In step 518, the Script function returns with a return value equal to the results, results1, of step 514. If the results indicate an error in the validation, then the IOT device program sends a ‘notice’ message to the last person involved in the process, i.e., a person in the provider's office, and waits for a new prescription.

FIG. 6 depicts a flow chart of operations performed by the Interaction function, in an embodiment. In step 602, the Interaction function checks the patient's condition and possible drug interactions based on the patient's data. In step 604, the Interaction function returns the results, results2, of step 602. If the results of the interaction check indicate an error, then the IOT device programs sends a ‘notice’ message to the last person involved in the process, i.e., a person in the provider's office 102 and runs the Script function, in attempt to obtain an altered prescription that avoids the interaction.

FIG. 7 depicts a flow chart of operations performed by the Fill function, in an embodiment. In step 702, the Fill function sends a ‘new script arrived, report’ message to the pharmacy technician, where the report is the pharmacy report prepared in step 602 of FIG. 6. In step 704, the pharmacy technician checks the received report. If the pharmacy technician does not confirm the report as determined in step 704, then the Fill function returns with an error to inform the IOT device program. If the pharmacy technician does confirm the report as determined in step 706, then the patient's medication is added to the IOT device 114. In step 708, pharmacy technician adds dosage data to the smart and secure container 112. In step 710, the pill counting and sorting mechanism 206 of the IOT device 114 counts the medication items entering into the smart and secure container 112. This assures that the medication in the correct amount and in the proper form (size, color, shape and other markings) is added to the smart container. If, as determined in step 712, the result, results3, of the step 710 is invalid, then the Fill function returns with the results3 in the return value to inform the IOT device program 402 of the error. If the count is valid, then in step 714, the pharmacy technician programs the smart container and secure 112 with encrypted versions of the patient data, the patient's dosage schedule, the patient token and the record id of the block chain record, thereby ensuring that information stored in the smart container is secure. In step 716, the Fill function returns with its return values.

FIG. 8 depicts a flow chart of operations performed by the Transit function, in an embodiment. In step 802, the Transit function sends a ‘ready for transit’ message to the pharmacy technician. In step 804, the Transit function logs the chain of custody into the block chain record. If step 806, the Transit function determines whether there is any excess medication. If so, then in step 808, the Transit function sends a ‘notice of excess medication’ message to the pharmacy technician. If not, then in step 810, the Transit function removes the patient data from the pharmacy IOT device 114 and in step 812 disposes of any expired medication. In step 812, the Transit function logs the transaction into the block chain record. In step 814, the Transit function has the smart and secure container 112 transported to the patient's site 106 and in step 816, returns with a ‘No Error’ return value.

FIG. 9 depicts a program run by the patient IOT device, in an embodiment. In the embodiment depicted, the program 902 has four states R 904, D 906, CA 908, and CB 910. In state R 904, the Replenishment function runs; in state D 906, the Dispense function runs; in state CA 908, the CompletionA function runs; and in state CB 910, the CompletionB function runs. Each of these functions is described in more detail below. In state R 904, the Replenishment function waits for a new smart container to arrive and if the function runs without error, then the program 902 runs the Dispense function next. If the Replenishment function encounters a validation error, then the program 902 sends a ‘notice’ message to the last person involved in the process (i.e., the pharmacy technician), and runs the CompletionB function next. If the Dispense function runs without error, then the program 902 runs the CompletionA function next. If the Dispense function encounters an authentication error, then the program 902 sends a ‘notice’ message to the last person involved in the process (i.e., the pharmacy technician) and runs the CompletionB function next. If the Dispense function encounters a Biometric error or a Timeout error, then the program 902 sends a ‘notice’ message to the pharmacy technician and runs the Dispense function next, attempting to see if the error can be avoided. If a Biometric error or Timeout error persists over a number of reruns of the Dispense function, program 902 may decide to run the Completion B function. If the CompletionA function runs without error then the program 902 runs the CompletionB function next. If the CompletionB function runs without error then the program 902 returns back to the Replenishment function, which waits for the next smart container to be attached. Thus, if no errors are encountered, the program 902 runs the Replenishment, Dispense, CompletionA and CompletionB functions sequentially. Besides the error conditions mentioned above, other error conditions can be accommodated by the existing functions or added functions.

FIG. 10 depicts a flow chart of operations performed by the Replenishment function, in an embodiment. In step 1002, the function has received a smart and secure container 118 from the pharmacy 104. In step 1004, the function connects the received smart and secure container 118 to the patient IOT device 122 via the USB port 252. In step 1006, the function validates the smart and secure container 118 against the patient IOT device 122 to determine if the smart and secure container 118 having the medication for the patient is connected to the correct IOT device 122 at the site of that patient 106. The validation is based on a public/private key combination stored in the smart container. If, as determined in step 1008, a validation error occurs, then the function executes step 1014 returning with a value for results1 indicating the error. If, as determined in step 1008, there is no validation error, then the function logs the chain of custody using the block chain record and the patient token. In step 1010, the function sends a ‘medication regimen started’ message to the provider's office 102, and then in step 1014, returns.

FIG. 11 depicts a flow chart of operations performed by the Dispense function, in an embodiment. In step 1102, the function awaits a time of day at which medication is to be dispensed. In step 1104, the function sends a ‘notice of events’ message to the patient indicating a number of bioTasks (biomedical measurements) and/or dosage events (time of day and particular medication) that the patient must successfully complete in carrying out the prescription. Notification can include an audio signal or an electronic alert such as a text message, email, or phone call with a message. In step 1106, the Dispense function authenticates the identity of the patient via a biometric id such as a fingerprint, using the authentication device 234 attached to the IOT device 122 at the patient's site 106. If, as determined in step 1108, the results of the authentication fail, then the Dispense function executes step 1120 returning with ‘results2’ indicating the authentication failure. If, as determined in step 1108, the authentication succeeds, then in step 1110 the function starts an iterator over the various events (tasks) required of the patient to receive the medication. In step 1112, match event determines whether the event is dosage event or a bioTask event. If the event is a dosage event, then the function invokes the Dosage function in step 1114 to provide the medication. If the event is a bioTask event, then the function invokes in step 1116 the BioTask function, which captures one or more bio-measurements performed by the patient. In step 1120, the function returns with the results of the Dosage and BioTask functions.

FIG. 12 depicts a flow chart of operations performed by the Dosage function, in an embodiment. In step 1202, the function determines whether any previous biometric measurement or measurements based on the variable prev_biometric, returned an error. If so, then medication is not dispensed. If result of a previous BioTask function is acceptable, then in step 1204, the function determines whether the dosage is compatible with the biometric measurements and the patient data, which is stored in the memory of the smart container. If the dosage is compatible, then the Dosage function dispenses the medications in step 1206 in amounts in accordance with the results of the biometric measurements combined with the patient's data. In step 1208 sends a ‘video of dosage taken, results of bioTask’ message to the provider's office 102 over link C 128, where the message includes the actual video, using the video camera 256 at the patient's site 122, of the patent taking the medication and the results of the BioTask or BioTasks that were required prior to and as a condition of administering the medication or were required after taking the medication. Sending this information to the provider's office helps determine whether the mediation had the desired effect. In step 1210, the function returns with ‘results3’. ‘Results3’ indicate no error if the medication was dispensed or the biometric tests and/or the results of the compatibility of the dosage with the combined biometric measurements and the patent data, thus indicating the reason that the medication was not dispensed. As described in reference to FIG. 9, the patient program then decides whether or not to repeat the Dispense function.

FIG. 13 depicts a flow chart of operations performed by the BioTask function, in an embodiment. In step 1302, the patient performs a requested biometric task, such as measuring blood pressure, blood oxygen level, heart rate, glucose levels and temperature, using biometric devices 254. If, as determined in step 1304, the results are acceptable (i.e., within acceptable limits), then the function records the results of the biometric in a variable, prev_biometric, and in step 1306, sends a results message, ‘results4’ of the biometric measurement to the provider's office 102 and returns in step 1310. If, as determined in step 1304, the results of the measurement are not acceptable, either because the measured values are not valid or out of range or because a time period in which the measurement was to be performed had elapsed (i.e., a timeout), then the function returns in step 1310 with the results. The patient program 902 running on the patient IOT device then sends a ‘notice’ message to the last person involved in the process, the pharmacy technician, and then runs the BioTask function again. After a certain number of attempts at re-running the BioTask function, the patient program 902 may decide to end the process by running the CompletionB task and sending a ‘notice’ message to the medical provider.

FIG. 14 depicts a flow chart of operations performed by the CompletionA function, in an embodiment. In step 1402, the function sends a ‘notice of completion’ message to the patient. In step 1404, the function determines whether or not a refill of medication is needed based on an inventory of medications in the smart and secure container 118. If so, then in step 1406 the function sends a ‘notice of refill’ to the patient. If not, then the function determines in step 1408 whether there is any excess medication or expired medication. If so, then in step 1410, the function causes the disposal of the medication using the neutralization container 310 or causes the medication in the smart container to be sent back to the pharmacy. In step 1412, the function sends a ‘notice of completion’ to the provider's office 102 and returns in step 1414.

FIG. 15 depicts a flow chart of operations performed by the CompletionB function, in an embodiment. In step 1502, the function sends a ‘request to remove container’ message to the patient, which causes removal of the smart and secure container 118 from the IOT device 122 at the patient's site 106. In step 1504, the function updates the block chain record using the patient token to record the removal of the smart and secure container 118. In step 1506, the function causes the smart and secure container 118 to be returned to the pharmacy 104 and in step 1508, returns with ‘No error’.

FIG. 16 depicts a time line, in summary fashion, of various events, in an embodiment. At time t1, the provider sends the prescription and instructions to the pharmacy 104. At time t2, the pharmacy 104 requests the patient data and at time t3 receives the requested patient data from the provider 102. At step t4, the pharmacy 104 validates the prescription against the received patient data. At time t5, the pharmacy 104 sets up the smart and secure container 112 and at time t6 sends the smart and secure container 112 to the patient's site 106. At time t7, the patient's site 106 validates the smart and secure container 118 at the patient's site 106. At time t8, the patient's identity is authenticated. A time t9, the patient performs any bioTasks that are conditions for receiving the medication. At time t10, the patient's medication is dispensed via the smart and secure container 118 and a video of the patent taking the medication is sent back to the provider 102. At time t11, the smart and secure container 118 is returned to the pharmacy 104.

The result of these processes is that prescriptions from a medical provider can be securely and accurately delivered to a pharmacy, that the pharmacy perform a test for medication interactions based on the patient's data, and can securely fill the prescription with the correct dosage, correct amount and correct form of the medication, that the medication can be securely transported to the patient's site, that the identity and physical condition of the patient can be checked before medication is dispensed according to a prescribed time schedule and that any unused medication can be disposed of or returned to the pharmacy.

Because a complete chain of custody from the time that the medical provider prescribed the medication to the filling of the prescription at the pharmacy to the taking of the medication by the patient is recorded by the block chain records, the chain of custody can be used for further treatment, and/or related medical analysis (i.e., clinical trials, insurance payments, drug usage analysis, patient consumption patterns, pharmacy inventory reconciliation and doctor prescription analysis.

The descriptions of the various embodiments of the present invention have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.

In the present disclosure, reference is made to embodiments presented in this disclosure. However, the scope of the present disclosure is not limited to specific described embodiments. Instead, any combination of the following features and elements, whether related to different embodiments or not, is contemplated to implement and practice contemplated embodiments. Furthermore, although embodiments disclosed herein may achieve advantages over other possible solutions or over the prior art, whether or not a particular advantage is achieved by a given embodiment is not limiting of the scope of the present disclosure. Thus, the described aspects, features, embodiments and advantages are merely illustrative and are not considered elements or limitations of the appended claims except where explicitly recited in a claim(s). Likewise, reference to “the invention” shall not be construed as a generalization of any inventive subject matter disclosed herein and shall not be considered to be an element or limitation of the appended claims except where explicitly recited in a claim(s).

Aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.”

The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.

Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.

Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.

These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.

The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.

The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.

While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow. 

What is claimed is:
 1. A method comprising: receiving, from a medical provider, a prescription associated with an identifier of a patient; in response to receiving the prescription, requesting and obtaining from the medical provider patient data including medical history of the patient; determining that the prescription is compatible with the patient data; adding medication according to the prescription to a secure container; and programming the secure container with the patient identifier and dosage information, including a dosage schedule according to the received prescription.
 2. The method of claim 1, wherein the patient data includes other medication prescribed for the patient; and wherein determining that the prescription is compatible with the patient data includes determining that the medication prescribed does not adversely interact with the other patient medication.
 3. The method of claim 1, wherein the secure container includes one or more medication bins; and wherein adding medication to the secure container includes: connecting the secure container to a medication counting and sorting mechanism; and causing the medication counting and sorting mechanism to fill the one or more bins of the secure container with the prescribed medication.
 4. The method of claim 3, wherein causing the medication counting and sorting mechanism to fill the one or more bins of the secure container with the prescribed medication includes counting the medication as the one or more bins are filled.
 5. The method of claim 1, wherein receiving the prescription includes: receiving encrypted electronic data containing the prescription over the Internet; and decrypting the encrypted electronic data to generate the prescription in plain text.
 6. The method of claim 1, further comprising: transporting the secure container to a site at which the patient is present; wherein the patient receives the medication after the identity of the secure container is verified at the patient site based on the patient identifier programmed in the secure container and identity of the patient is authenticated based on a biometric scan.
 7. The method of claim 6, wherein a video recording of the patient at the patient site receiving and taking the medication is sent to the medical provider.
 8. The method of claim 1, further comprising: creating a block chain record for inclusion in a distributed ledger; updating the block chain record with a pharmacy token to identify the pharmacy that received the prescription; updating the block chain record with a patient token based on the identifier of the patient to identify the patient for whom the prescription was received; and updating the block chain record with a transaction identifying the adding of medication into the secure container.
 9. A system comprising: an IOT device at a pharmacy and including a processor and memory coupled to the processor; and a smart container connected to the IOT device, wherein the smart container includes a memory; wherein the processor runs a program configured to: receive, from a medical provider, a prescription associated with an identifier of a patient; in response to receiving the prescription, request and obtain from the medical provider patient data including medical history of the patient; determine that the prescription is compatible with the patient data; add medication according to the prescription to a secure container; and update the memory of the secure container with the patient identifier and dosage information, including a dosage schedule according to the received prescription.
 10. The system of claim 9, wherein being configured to receive the prescription includes being configured to: receive encrypted electronic data containing the prescription over the Internet; and decrypt the encrypted electronic data to generate the prescription in plain text.
 11. The system of claim 9, wherein the patient data includes other medication prescribed for the patient; and wherein determining that the prescription is compatible with the patient data includes determining that the medication prescribed does not adversely interact with the other patient medication.
 12. The system of claim 9, wherein the TOT device includes a medication counting and sorting mechanism; wherein the secure container includes one or more medication bins; and wherein the processor being configured to add medication to the secure container includes being configured to: receive an indication that the secure container is connected to the medication counting and sorting mechanism; and cause the medication counting and sorting mechanism to fill the one or more bins of the secure container with the prescribed medication.
 13. The system of claim 12, wherein being configured to cause the medication counting and sorting mechanism to fill the one or more bins of the secure container with the prescribed medication includes being configured to count the medication as the one or more bins of the secure container are filled with the prescribed medication.
 14. The system of claim 12, wherein the secure container includes disposal bins which store disposed medication.
 15. The system of claim 14, wherein the processor is further configured to dispose of medication by adding a neutralizing agent to the medication and then causing the neutralized medication to be deposited into the disposal bins.
 16. A computer program product for delivering medications to a patient at a patient's site, the computer program product comprising: a computer-readable storage medium having computer-readable program code embodied therewith, the computer-readable code executable by one or more computer processors to: receive, from a medical provider, a prescription associated with an identifier of a patient; in response to receiving the prescription, request and obtain from the medical provider patient data including medical history of the patient; determine that the prescription is compatible with the patient data; add medication according to the prescription to a secure container, wherein the secure container includes a memory; and update the memory of the secure container with the patient identifier and dosage information, including a dosage schedule according to the received prescription.
 17. The computer program product of claim 16, wherein the computer-readable program is further executable to: receive encrypted electronic data containing the prescription over the Internet; and decrypt the encrypted electronic data to generate the prescription in plain text.
 18. The computer program product of claim 16, wherein the patient data includes other medication prescribed for the patient; and wherein the computer-readable program being executable to determine that the prescription is compatible with the patient data includes being executable to determine that the medication prescribed does not adversely interact with the other patient medication.
 19. The computer program product of claim 16, wherein the computer-readable program being executable to add medication to the secure container includes being executable to: receive an indication that the secure container is connected to a medication counting and sorting mechanism; and cause the medication counting and sorting mechanism to fill the one or more bins of the secure container with the prescribed medication.
 20. The computer program product of claim 16, wherein the computer-readable program is further executable to: create a block chain record for inclusion in a distributed ledger; update the block chain record with a pharmacy token to identify the pharmacy that received the prescription; update the block chain record with a patient token based on the identifier of the patient to identify the patient for whom the prescription was received; and update the block chain record with a transaction identifying the adding of medication into the secure container. 